# -*- coding: utf-8 -*-
# @File     : run.py.py
# @Author   : hewenjun
# @Desc     : 描述

import pytest
import allure
import os

import sys, getopt


def scope(argv):
    try:
        opts, args = getopt.getopt(argv, "hp:f:c:t:")
    except getopt.GetoptError:
        print('缺少参数或参数值错误，请输入-h获取参考信息')
        sys.exit(2)
    for opt, arg in opts:
        if opt == '-h':
            print("""
         输入命令： python run.py -选项 参数值来运行测试
         不输入参数默认执行所有用例
         -p 参数为要执行测试的绝对路径                  -- /usr/nami/cases
         -f 参数为要执行的测试文件                     -- /usr/nami/cases/test.py
         -c 参数为要执行的测试类                       -- test_model.py::test_class
         -t 参数为要执行的测试用例                     -- test_module::test_function
         -h 帮助信息
         """)
            sys.exit()
        elif opt in ('-p', '-f', '-c', '-t'):
            scp = arg
            return scp


if __name__ == '__main__':
    if len(sys.argv) == 1:
        scp = "D:\\nami\cases"
    else:
        scp = scope(sys.argv[1:])
    print("执行的测试范围是：", scp)
    os.system('del /Q/F D:\py_test\\temp\*.*')
    pytest.main(['-v', '-s', scp, '--alluredir', 'temp'])
    os.system('allure generate ./temp -o ./report --clean')
